package com.marketing.auth.dto;

/**
 * 用户查询请求DTO
 */
public class UserQueryRequest {
    
    private String username; // 用户名模糊查询
    private String email; // 邮箱模糊查询
    private String nickname; // 昵称模糊查询
    private String phone; // 手机号模糊查询
    private Integer status; // 状态精确查询：0-禁用，1-启用
    private String role; // 角色精确查询：ADMIN-管理员，USER-普通用户
    private String department; // 部门模糊查询
    private String position; // 职位模糊查询
    
    // 分页参数
    private Integer pageNum = 1; // 页码，从1开始
    private Integer pageSize = 10; // 每页大小
    
    // 排序参数
    private String sortBy = "createTime"; // 排序字段
    private String sortOrder = "desc"; // 排序方向：asc升序，desc降序

    public UserQueryRequest() {}

    // Getters and Setters
    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getNickname() {
        return nickname;
    }

    public void setNickname(String nickname) {
        this.nickname = nickname;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public String getRole() {
        return role;
    }

    public void setRole(String role) {
        this.role = role;
    }

    public String getDepartment() {
        return department;
    }

    public void setDepartment(String department) {
        this.department = department;
    }

    public String getPosition() {
        return position;
    }

    public void setPosition(String position) {
        this.position = position;
    }

    public Integer getPageNum() {
        return pageNum;
    }

    public void setPageNum(Integer pageNum) {
        this.pageNum = pageNum;
    }

    public Integer getPageSize() {
        return pageSize;
    }

    public void setPageSize(Integer pageSize) {
        this.pageSize = pageSize;
    }

    public String getSortBy() {
        return sortBy;
    }

    public void setSortBy(String sortBy) {
        this.sortBy = sortBy;
    }

    public String getSortOrder() {
        return sortOrder;
    }

    public void setSortOrder(String sortOrder) {
        this.sortOrder = sortOrder;
    }

    @Override
    public String toString() {
        return "UserQueryRequest{" +
                "username='" + username + '\'' +
                ", email='" + email + '\'' +
                ", nickname='" + nickname + '\'' +
                ", phone='" + phone + '\'' +
                ", status=" + status +
                ", role='" + role + '\'' +
                ", department='" + department + '\'' +
                ", position='" + position + '\'' +
                ", pageNum=" + pageNum +
                ", pageSize=" + pageSize +
                ", sortBy='" + sortBy + '\'' +
                ", sortOrder='" + sortOrder + '\'' +
                '}';
    }
}